package com.adv.io;

import java.io.*;
import java.util.*;

/**
 * 9*:求一个文件夹的大小,包括其中的子文件(采用递归的方式或者其他)
 * 
 * @author zhaoyang
 *
 */
public class IO_Work09 {

	private static File file;

	public static long getFileLength(File file) {
		// 1,定义一个求和变量
		long len = 0;
		// 2,获取该文件夹下所有的文件和文件夹listFiles();
		File[] files = file.listFiles();
		// 3,遍历数组
		for (File f : files) {
			// 4,判断是文件就计算大小并累加
			if (f.isFile()) {
				len += f.length();
				// 5,判断是文件夹,递归调用
			} else {
				len += getFileLength(f);
			}
		}
		return len;

	}

	public static void main(String[] args) throws IOException {
		File file = new File("/Users/zhaoyang/Documents/Java/电子书");
		System.out.println("文件夹的大小:" + file.length());
		System.out.println("文件夹包括其中的子文件的大小:" + getFileLength(file));

	}

}
